package co.edu.eam.taller.mecanico.entidades;

import java.io.Serializable;
import java.util.List;

import javax.persistence.*;



/**
 * Entity implementation class for Entity: Automovil
 *
 */
@Entity
@NamedQueries({
	@NamedQuery(name=Automovil.FIND_ALL,query="select c from Automovil c"),
	@NamedQuery(name = Automovil.CONSULTA_AUTOMOVILES_BY_CLIENTE, query = "SELECT c from Automovil c where c.cliente.id=:"
			+ Automovil.PARAMETRO_CLIENTE)
})

public class Automovil implements Serializable {

	public static final String FIND_ALL="Automovil.findAll";
	public static final String PARAMETRO_CLIENTE="Cliente";
	public static final String CONSULTA_AUTOMOVILES_BY_CLIENTE="Automovil.findCliente";
	private static final long serialVersionUID = 1L;
    /*Atributo el cual representa la llave primaria de la entidad automovil*/
	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)
	private long id;
	/* Atributo el cual representa la placa de la entidad automovil */
	private String placa;
	/* Atributo el cual representa el modelo de la entidad automovil */
	private String modelo;
	/* Atributo el cual representa la marca de la entidad automovil */
	private String marca;
	
	/*RELACIONES*/
	/**
	 * Relacion de muchos a uno con la entidad cliente.
	 */
	@ManyToOne
	@JoinColumn(name = "cliente")
	private Cliente cliente;
	
	/**
	 * Relacion de uno a muchos con la entidad visita.
	 */
	@OneToMany(mappedBy="automovil",fetch=FetchType.LAZY)
	private List<Visita> visitas;
		
	public Automovil() {
		super();
	}

	public Automovil(String placa, String modelo, String marca,
			Cliente cliente) {
		super();
		this.placa = placa;
		this.modelo = modelo;
		this.marca = marca;
		this.cliente = cliente;
	}

	public long getId() {
		return id;
	}

	public void setId(long id) {
		this.id = id;
	}

	public String getPlaca() {
		return placa;
	}

	public void setPlaca(String placa) {
		this.placa = placa;
	}

	public String getModelo() {
		return modelo;
	}

	public void setModelo(String modelo) {
		this.modelo = modelo;
	}

	public String getMarca() {
		return marca;
	}

	public void setMarca(String marca) {
		this.marca = marca;
	}

	public Cliente getCliente() {
		return cliente;
	}

	public void setCliente(Cliente cliente) {
		this.cliente = cliente;
	}

	public List<Visita> getVisitas() {
		return visitas;
	}

	public void setVisitas(List<Visita> visitas) {
		this.visitas = visitas;
	}
	
	
   
}
